Skip to main content
Version: 8

Basic Troubleshooting

Basic MoveIt Pro Troubleshooting

When you run MoveIt Pro in the most basic way (moveit_pro run) it suppresses a lot of debugging and information output from MoveIt Pro and its ROS ecosystem components, so one of the first things you’ll want to try with any issue is:

moveit_pro run -v

Which puts moveit_pro in verbose mode and gives you a lot more information to work with.

You can either run this command line as above, in which case the output will go to the console or do something like:

moveit_pro run -v | tee moveit_pro_log.txt

Which will save all that logging info to a file called moveit_pro_log.txt that you can later review, share, or submit as part of a support ticket.

Verbose Output

info

The verbose output can be quite voluminous which has its upsides and its downsides. The downside is there is a lot there and it can take time to sort through. And the upside is that because there is a lot of information you have plenty of evidence to diagnose any issues you encounter.

Key Logging Sources

For the purposes of reviewing the output, MoveIt Pro consists of 3 main parts:

  1. agent_bridge-1 - the primary component of MoveIt Pro that contains the behavior trees, high level execution, motion planning, control, and many other pieces.
    This component always runs and there is no MoveIt Pro without it.
  2. web_ui-1 - the web server and other front-end-centric components of the application. It is present in base configurations and for anyone who uses the UI.
    It does not have to exist and some customers run in headless mode that does not require it.
  3. drivers-1 - the part that controls the robot directly (may be controlling simulation or real hardware).
    This part may be rewritten or replaced by customers, though MoveIt Pro is not going to do any real work without some component fulfilling this purpose (commanding real or simulated robots).
    drivers-1 is what we call our base implementation that talks to the High Performance Physics Simulation we provide.

You will see one of these 3 components referenced often at the start of a line in the output.

[drivers-1] Joint State Initialized
[agent-bridge-1] Client connected Mozilla Firefox
[web-ui-1] Oh no my finisher

Error Handling

MoveIt Pro does its best to propagate meaningful errors into the user interface as popup "toast" messages.

info

A good example of this is planning failures.
When developing a robotics system, planning failures are expected.
If MoveIt Pro fails to plan, that is an error state but it is expected. It is not a bug or error in the software.
In this case the planning algorithm couldn’t find a way to do what the system was asking of it, based on current inputs. The developer needs to be made aware and either A)the inputs need to be tweaked or B) proper handling of such a situation can be built into the behavior tree.

This type of error propagates easily into the UI and all you need to do is review the toast messages and it should be clear what is happening. Here are some other simple errors that are diagnosable, just by looking at the MoveIt Pro user interface, though they are also visible in the verbose output.

Simple Errors

  1. Failure to plan
    • Robot near singularity
    • Robot is currently in collision
    • Robot would be in collision
    • Robot cannot reach pose
    • Robot cannot fulfill planning constraints
  2. Failure to move
    • Cannot activate joint controller
    • Cannot communicate with driver
    • Driver cannot sufficiently track commanded motion
  3. License Expiration
  4. Behavior Tree Failure
    • Missing or misconfigured port values
    • Missing or misconfigured subtree remap values
    • Incorrect behavior logic
  5. DDS Configuration errors
    • Multi-machine Cyclone DDS configuration
    • Use of Fast DDS

We provide troubleshooting guides for planning here:

Planning and Control Troubleshooting Guide - this guide is for situations where the planning of motions or control of motions is having problems and you need to figure out what to do.

More Complex Errors

Moving along the spectrum of possible errors from there, we move to more complicated error states that the software cannot always easily simply pass through a contained or known error.
This happens especially when users develop their own containers, behaviors, and robots.

When we venture into this territory the universe of possible errors includes anything that can break in the C++ compiler or create a misconfiguration in a custom robot definition, which is many things.

Below is a non-exhaustive list, but should give a sense of what you might see from the middle of the spectrum to the very complex end of the spectrum. You should treat the output as you would the output of any IDE and look for clues about how/whether your code and configuration may contain any of the following:

  1. Docker configuration issues
    • Loss of DNS connectivity
    • Port mapping failures between containers
  2. Network problems
    • Errors connecting to custom components locally on the host
    • Errors connecting to custom components on external machines
    • Port mapping failures between containers and host
  3. Misconfigured robots
  4. Missing or incomplete or broken custom behaviors referenced in the application.
    • Code files or header files that are incomplete or missing
  5. Compilation errors in custom code

Troubleshooting Guides for More Complex Errors

We provide guides to assist with troubleshooting some of these more advanced topics, just check the Troubleshooting section of the document navigation to learn more.

Assessing the Output

With all this in mind you can look at the output from MoveIt Pro and assess the possible source of the error. A basic approach for looking at issues:

  1. Look for Errors - Searching for the string ‘error’ inside the output
  2. Look for the First Error - as described above, a single issue can cause multiple downstream problems, so often the first problem chronologically is the source of the issue.
  3. Read the Details - we strive to be clear about what is happening inside MoveIt Pro so if you look at the details of the error message, very often it can tell you what is happening, especially when you look at the list of errors up above.

Using MoveIt Pro Build

If you are creating custom behaviors, running moveit_pro build is an important troubleshooting step that you should employ if it appears that your custom components are not built or working correctly. Please consult the How To Guides and Tutorials for more information on use of moveit_pro build.

What To Do if You Cannot Solve the Problem

Never fear!
PickNik is here to help.
If you believe that the error you are seeing is an issue with MoveIt Pro itself, please visit https://support.picknik.ai so we can help you.

If you are attempting to build custom behaviors, add new robots, or construct complex behavior trees then PickNik has developers available to assist you with these tasks. These things fall outside the realm of support, but we are happy to help with either development work, consultations, or co-development of robotic systems based on MoveIt Pro.